package com.thb.pay.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.thb.pay.db.entity.SuperEntity;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 商户-资金账户-流水表
 * </p>
 *
 * @author lucky
 * @since 2019-07-21
 */
@Data
@Accessors(chain = true)
@TableName("mch_account_history")
public class MchAccountHistory extends SuperEntity<MchAccountHistory> {

    private static final long serialVersionUID = 1L;

    /**
     * 商户ID
     */
    private Long mchId;

    /**
     * 变动金额
     */
    private Long amount;

    /**
     * 变更前账户余额
     */
    private Long balance;

    /**
     * 变更后账户余额
     */
    private Long afterBalance;

    /**
     * 代理商ID
     */
    private Long agentId;

    /**
     * 一级代理商ID
     */
    private Long parentAgentId;

    /**
     * 订单金额
     */
    private Long orderAmount;

    /**
     * 手续费
     */
    private Long fee;

    /**
     * 代理商利润,单位分
     */
    private Long agentProfit;

    /**
     * 父级代理商利润,单位分
     */
    private Long parentAgentProfit;

    /**
     * 平台利润,单位分
     */
    private Long platProfit;

    /**
     * 渠道成本,单位分
     */
    private Long channelCost;

    /**
     * 资金变动方向,1-加款,2-减款
     */
    private Integer fundDirection;

    /**
     * 是否允许结算,1-允许,0-不允许
     */
    private Integer isAllowSett;

    /**
     * 商户结算状态,1-已完成,0-未完成
     */
    private Integer mchSettStatus;

    /**
     * 代理商结算状态,1-已完成,0-未完成
     */
    private Integer agentSettStatus;

    /**
     * 父级代理商结算状态,1-已完成,0-未完成
     */
    private Integer parentAgentSettStatus;

    /**
     * 平台订单号
     */
    private String orderId;

    /**
     * 渠道订单号
     */
    private String channelOrderNo;

    /**
     * 业务类型,1-支付,2-提现,3-调账,4-充值,5-差错处理,6-代付
     */
    private Integer bizType;

    /**
     * 风险预存期
     */
    private Integer riskDay;

    /**
     * 备注
     */
    private String remark;

    /**
     * 业务类目:10-余额,11-代付余额,12-冻结金额,13-保证金,20-支付,21-代付,22-线下充值,23-线上充值
     */
    private String bizItem;

    /**
     * 代理商风险预存期
     */
    private Integer agentRiskDay;
}
